
#ifndef __PLUGIN_H__
#define __PLUGIN_H__


namespace Apo
{
	class  Plugin 
	{
	public:
		Plugin() {}
		virtual ~Plugin() {}

		virtual const Str& getName() const = 0;

		virtual void install() = 0;

		virtual void initialise() = 0;

		virtual void shutdown() = 0;

		virtual void uninstall() = 0;
	};
}

#endif


